Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve rows parsing logic #174

Closed
wants to merge 1 commit into from
Closed

Conversation

marco6
Copy link
Collaborator

@marco6 marco6 commented Sep 20, 2024

Rows parsing is the central logic that iterates over the result of a query and creates domain values.

This PR tweaks the way this is done by:

  • using values instead of pointers as we are returning slices of small structs
  • allocating only when necessary

Hopefully this will reduce slightly the memory footprint and (more importantly) will reduce the allocation count, reducing pressure on the GC.

Copy link

Benchmark Result

goos: linux
goarch: amd64
pkg: github.com/canonical/k8s-dqlite/test
cpu: AMD EPYC 7763 64-Core Processor                
                                        │    Before     │                After                 │
                                        │    sec/op     │    sec/op      vs base               │
Compaction/sqlite-4                        36.52µ ± 14%    36.45µ ± 15%        ~ (p=0.902 n=7)
Compaction/dqlite-4                        41.36µ ± 16%    42.74µ ±  8%        ~ (p=0.902 n=7)
Create/1-workers/sqlite-4                  1.231m ±  3%    1.283m ±  3%   +4.22% (p=0.001 n=7)
Create/2-workers/sqlite-4                  1.325m ±  7%    1.263m ±  6%        ~ (p=0.053 n=7)
Create/4-workers/sqlite-4                  1.338m ± 16%    1.247m ± 28%        ~ (p=0.259 n=7)
Create/8-workers/sqlite-4                  1.418m ± 19%    1.453m ± 30%        ~ (p=0.710 n=7)
Create/16-workers/sqlite-4                 1.806m ± 25%    1.619m ± 35%        ~ (p=0.620 n=7)
Create/1-workers/dqlite-4                  1.173m ±  8%    1.125m ±  6%        ~ (p=0.209 n=7)
Create/2-workers/dqlite-4                 1006.0µ ± 17%    977.2µ ±  4%        ~ (p=0.318 n=7)
Create/4-workers/dqlite-4                  867.0µ ± 18%    913.1µ ±  9%        ~ (p=1.000 n=7)
Create/8-workers/dqlite-4                 1037.7µ ±  7%    896.1µ ±  6%  -13.65% (p=0.001 n=7)
Create/16-workers/dqlite-4                1017.7µ ±  3%    913.4µ ±  8%  -10.25% (p=0.001 n=7)
Delete/1-workers/sqlite-4                  1.463m ±  7%    1.466m ± 14%        ~ (p=0.902 n=7)
Delete/2-workers/sqlite-4                  1.565m ±  5%    1.519m ± 10%        ~ (p=0.128 n=7)
Delete/4-workers/sqlite-4                  1.651m ±  8%    1.661m ±  6%        ~ (p=1.000 n=7)
Delete/8-workers/sqlite-4                  1.997m ± 21%    1.775m ± 23%        ~ (p=0.318 n=7)
Delete/16-workers/sqlite-4                 2.556m ± 20%    2.137m ± 17%  -16.39% (p=0.038 n=7)
Delete/1-workers/dqlite-4                  1.327m ±  7%    1.390m ±  9%        ~ (p=0.209 n=7)
Delete/2-workers/dqlite-4                  1.153m ±  3%    1.226m ±  6%   +6.29% (p=0.001 n=7)
Delete/4-workers/dqlite-4                  1.122m ±  4%    1.126m ±  6%        ~ (p=0.710 n=7)
Delete/8-workers/dqlite-4                  1.101m ±  4%    1.107m ±  4%        ~ (p=1.000 n=7)
Delete/16-workers/dqlite-4                 1.113m ±  3%    1.123m ±  2%        ~ (p=0.383 n=7)
Get/sqlite-4                               268.0µ ±  1%    259.5µ ±  2%   -3.18% (p=0.001 n=7)
Get/dqlite-4                               358.2µ ±  2%    349.1µ ±  2%   -2.55% (p=0.004 n=7)
List/sqlite-tiny/all-4                     4.423µ ±  3%    4.369µ ±  3%        ~ (p=0.128 n=7)
List/sqlite-tiny/pagination-4              8.616µ ±  2%    8.843µ ±  2%   +2.63% (p=0.004 n=7)
List/sqlite-fits-in-page/all-4             7.314µ ±  3%    7.148µ ±  3%   -2.27% (p=0.011 n=7)
List/sqlite-fits-in-page/pagination-4      22.05µ ±  5%    21.51µ ±  2%        ~ (p=0.209 n=7)
List/sqlite-overflows-page/all-4           16.76µ ±  7%    16.43µ ±  3%        ~ (p=0.535 n=7)
List/sqlite-overflows-page/pagination-4    45.23µ ±  4%    45.37µ ±  4%        ~ (p=0.805 n=7)
List/dqlite-tiny/all-4                     2.834µ ± 12%    2.757µ ± 14%   -2.72% (p=0.026 n=7)
List/dqlite-tiny/pagination-4              5.879µ ±  1%    5.815µ ±  2%   -1.09% (p=0.038 n=7)
List/dqlite-fits-in-page/all-4             5.962µ ±  5%    5.845µ ±  9%        ~ (p=0.805 n=7)
List/dqlite-fits-in-page/pagination-4      15.81µ ±  4%    15.98µ ±  3%        ~ (p=1.000 n=7)
List/dqlite-overflows-page/all-4           17.45µ ±  3%    17.43µ ±  2%        ~ (p=1.000 n=7)
List/dqlite-overflows-page/pagination-4    40.26µ ±  3%    38.81µ ±  6%   -3.60% (p=0.038 n=7)
Update/1-workers/sqlite-4                  1.153m ±  3%    1.297m ±  4%  +12.50% (p=0.001 n=7)
Update/2-workers/sqlite-4                  1.173m ± 10%    1.345m ±  7%  +14.73% (p=0.002 n=7)
Update/4-workers/sqlite-4                  1.237m ± 12%    1.458m ± 12%  +17.84% (p=0.001 n=7)
Update/8-workers/sqlite-4                  1.359m ± 11%    1.536m ± 12%  +13.05% (p=0.017 n=7)
Update/16-workers/sqlite-4                 1.596m ± 34%    1.676m ± 20%        ~ (p=0.620 n=7)
Update/1-workers/dqlite-4                  968.0µ ±  7%   1115.7µ ±  3%  +15.26% (p=0.001 n=7)
Update/2-workers/dqlite-4                  872.7µ ±  5%    941.0µ ±  3%   +7.84% (p=0.001 n=7)
Update/4-workers/dqlite-4                  875.3µ ±  4%    963.1µ ±  8%  +10.03% (p=0.001 n=7)
Update/8-workers/dqlite-4                  871.6µ ± 15%    941.7µ ±  4%   +8.04% (p=0.026 n=7)
Update/16-workers/dqlite-4                 983.8µ ±  8%    941.6µ ± 10%        ~ (p=0.128 n=7)
geomean                                    295.2µ          296.1µ         +0.31%

                                        │        Before        │                    After                     │
                                        │ page-cache-misses/op │ page-cache-misses/op  vs base                │
Compaction/sqlite-4                               0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Compaction/dqlite-4                               0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Create/1-workers/sqlite-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Create/2-workers/sqlite-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Create/4-workers/sqlite-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Create/8-workers/sqlite-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Create/16-workers/sqlite-4                        0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Create/1-workers/dqlite-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Create/2-workers/dqlite-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Create/4-workers/dqlite-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Create/8-workers/dqlite-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Create/16-workers/dqlite-4                        0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Delete/1-workers/sqlite-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Delete/2-workers/sqlite-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Delete/4-workers/sqlite-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Delete/8-workers/sqlite-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Delete/16-workers/sqlite-4                        0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Delete/1-workers/dqlite-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Delete/2-workers/dqlite-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Delete/4-workers/dqlite-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Delete/8-workers/dqlite-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Delete/16-workers/dqlite-4                        0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Get/sqlite-4                                      0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Get/dqlite-4                                      0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/sqlite-tiny/all-4                            0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/sqlite-tiny/pagination-4                     0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/sqlite-fits-in-page/all-4                    0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/sqlite-fits-in-page/pagination-4             0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/sqlite-overflows-page/all-4                  0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/sqlite-overflows-page/pagination-4           0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/dqlite-tiny/all-4                            0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/dqlite-tiny/pagination-4                     0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/dqlite-fits-in-page/all-4                    0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/dqlite-fits-in-page/pagination-4             0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/dqlite-overflows-page/all-4                  0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/dqlite-overflows-page/pagination-4           0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Update/1-workers/sqlite-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Update/2-workers/sqlite-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Update/4-workers/sqlite-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Update/8-workers/sqlite-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Update/16-workers/sqlite-4                        0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Update/1-workers/dqlite-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Update/2-workers/dqlite-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Update/4-workers/dqlite-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Update/8-workers/dqlite-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Update/16-workers/dqlite-4                        0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
geomean                                                      ²                         +0.00%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

                                        │        Before        │                    After                     │
                                        │ page-cache-spills/op │ page-cache-spills/op  vs base                │
Compaction/sqlite-4                               0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Compaction/dqlite-4                               0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Create/1-workers/sqlite-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Create/2-workers/sqlite-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Create/4-workers/sqlite-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Create/8-workers/sqlite-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Create/16-workers/sqlite-4                        0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Create/1-workers/dqlite-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Create/2-workers/dqlite-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Create/4-workers/dqlite-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Create/8-workers/dqlite-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Create/16-workers/dqlite-4                        0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Delete/1-workers/sqlite-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Delete/2-workers/sqlite-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Delete/4-workers/sqlite-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Delete/8-workers/sqlite-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Delete/16-workers/sqlite-4                        0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Delete/1-workers/dqlite-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Delete/2-workers/dqlite-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Delete/4-workers/dqlite-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Delete/8-workers/dqlite-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Delete/16-workers/dqlite-4                        0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Get/sqlite-4                                      0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Get/dqlite-4                                      0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/sqlite-tiny/all-4                            0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/sqlite-tiny/pagination-4                     0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/sqlite-fits-in-page/all-4                    0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/sqlite-fits-in-page/pagination-4             0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/sqlite-overflows-page/all-4                  0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/sqlite-overflows-page/pagination-4           0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/dqlite-tiny/all-4                            0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/dqlite-tiny/pagination-4                     0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/dqlite-fits-in-page/all-4                    0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/dqlite-fits-in-page/pagination-4             0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/dqlite-overflows-page/all-4                  0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/dqlite-overflows-page/pagination-4           0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Update/1-workers/sqlite-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Update/2-workers/sqlite-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Update/4-workers/sqlite-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Update/8-workers/sqlite-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Update/16-workers/sqlite-4                        0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Update/1-workers/dqlite-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Update/2-workers/dqlite-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Update/4-workers/dqlite-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Update/8-workers/dqlite-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Update/16-workers/dqlite-4                        0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
geomean                                                      ²                         +0.00%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

                                        │    Before     │                After                │
                                        │ page-reads/op │ page-reads/op  vs base              │
Compaction/sqlite-4                         12.07 ±  2%     12.17 ±  1%       ~ (p=0.878 n=7)
Compaction/dqlite-4                         12.20 ±  1%     12.19 ±  1%       ~ (p=0.359 n=7)
Create/1-workers/sqlite-4                   14.09 ±  1%     14.01 ±  1%       ~ (p=0.077 n=7)
Create/2-workers/sqlite-4                   13.86 ± 10%     13.90 ±  1%       ~ (p=0.477 n=7)
Create/4-workers/sqlite-4                   13.42 ±  3%     13.57 ±  2%       ~ (p=0.197 n=7)
Create/8-workers/sqlite-4                   13.05 ±  8%     13.12 ±  4%       ~ (p=0.972 n=7)
Create/16-workers/sqlite-4                  12.50 ±  4%     12.59 ±  2%       ~ (p=0.334 n=7)
Create/1-workers/dqlite-4                   13.00 ±  2%     13.04 ±  1%       ~ (p=0.976 n=7)
Create/2-workers/dqlite-4                   10.84 ±  1%     10.79 ±  2%       ~ (p=0.636 n=7)
Create/4-workers/dqlite-4                   10.96 ±  1%     10.81 ±  1%  -1.37% (p=0.043 n=7)
Create/8-workers/dqlite-4                   10.80 ±  1%     10.90 ±  1%  +0.93% (p=0.050 n=7)
Create/16-workers/dqlite-4                  10.92 ±  1%     10.94 ±  2%       ~ (p=0.929 n=7)
Delete/1-workers/sqlite-4                   25.13 ±  1%     25.12 ±  1%       ~ (p=0.833 n=7)
Delete/2-workers/sqlite-4                   24.41 ±  2%     24.33 ±  9%       ~ (p=0.805 n=7)
Delete/4-workers/sqlite-4                   23.23 ±  3%     23.71 ± 13%       ~ (p=1.000 n=7)
Delete/8-workers/sqlite-4                   23.04 ±  3%     22.27 ±  5%       ~ (p=0.165 n=7)
Delete/16-workers/sqlite-4                  20.72 ±  8%     20.84 ±  6%       ~ (p=1.000 n=7)
Delete/1-workers/dqlite-4                   23.91 ±  1%     23.85 ±  1%       ~ (p=0.437 n=7)
Delete/2-workers/dqlite-4                   13.15 ±  2%     12.70 ±  5%  -3.42% (p=0.002 n=7)
Delete/4-workers/dqlite-4                   10.33 ±  2%     10.51 ±  2%       ~ (p=0.330 n=7)
Delete/8-workers/dqlite-4                   11.07 ±  1%     10.96 ±  1%  -0.99% (p=0.050 n=7)
Delete/16-workers/dqlite-4                  11.07 ±  1%     11.04 ±  3%       ~ (p=0.596 n=7)
Get/sqlite-4                                14.96 ±  0%     14.95 ± 20%       ~ (p=0.200 n=7)
Get/dqlite-4                                11.96 ±  0%     11.96 ±  0%       ~ (p=0.683 n=7)
List/sqlite-tiny/all-4                     192.4m ±  0%    192.2m ±  0%       ~ (p=0.178 n=7)
List/sqlite-tiny/pagination-4               1.131 ±  3%     1.132 ±  0%       ~ (p=0.070 n=7)
List/sqlite-fits-in-page/all-4             164.9m ±  0%    164.9m ±  0%       ~ (p=0.315 n=7)
List/sqlite-fits-in-page/pagination-4      965.7m ±  3%    965.5m ±  3%       ~ (p=0.517 n=7)
List/sqlite-overflows-page/all-4           269.3m ± 27%    241.3m ± 29%       ~ (p=0.902 n=7)
List/sqlite-overflows-page/pagination-4     2.080 ±  2%     2.080 ±  0%       ~ (p=0.690 n=7)
List/dqlite-tiny/all-4                     191.2m ±  1%    191.2m ±  1%       ~ (p=0.886 n=7)
List/dqlite-tiny/pagination-4               1.126 ±  0%     1.125 ±  3%  -0.09% (p=0.021 n=7)
List/dqlite-fits-in-page/all-4             163.1m ±  0%    163.2m ±  0%       ~ (p=0.155 n=7)
List/dqlite-fits-in-page/pagination-4      954.3m ±  0%    954.6m ±  3%       ~ (p=0.332 n=7)
List/dqlite-overflows-page/all-4           182.8m ±  0%    182.7m ±  0%       ~ (p=0.184 n=7)
List/dqlite-overflows-page/pagination-4     1.070 ±  3%     1.070 ±  0%       ~ (p=1.000 n=7)
Update/1-workers/sqlite-4                   16.34 ±  0%     16.15 ±  1%  -1.16% (p=0.001 n=7)
Update/2-workers/sqlite-4                   16.14 ±  1%     16.07 ±  2%       ~ (p=0.365 n=7)
Update/4-workers/sqlite-4                   15.84 ±  2%     15.54 ± 18%       ~ (p=0.165 n=7)
Update/8-workers/sqlite-4                   15.83 ±  3%     15.17 ±  4%  -4.17% (p=0.007 n=7)
Update/16-workers/sqlite-4                  14.71 ±  4%     14.62 ±  3%       ~ (p=0.365 n=7)
Update/1-workers/dqlite-4                   15.29 ±  1%     15.17 ±  1%  -0.78% (p=0.017 n=7)
Update/2-workers/dqlite-4                   12.90 ±  1%     12.77 ±  1%  -1.01% (p=0.004 n=7)
Update/4-workers/dqlite-4                   12.81 ±  1%     12.74 ±  1%  -0.55% (p=0.026 n=7)
Update/8-workers/dqlite-4                   12.88 ±  1%     12.66 ±  0%  -1.71% (p=0.001 n=7)
Update/16-workers/dqlite-4                  12.85 ±  1%     12.73 ±  1%       ~ (p=0.199 n=7)
geomean                                     5.900           5.866        -0.58%

                                        │     Before     │                 After                  │
                                        │ page-writes/op │ page-writes/op  vs base                │
Compaction/sqlite-4                        207.2m ± 0%        207.6m ± 0%       ~ (p=0.272 n=7)
Compaction/dqlite-4                        187.5m ± 0%        187.8m ± 1%       ~ (p=0.299 n=7)
Create/1-workers/sqlite-4                   5.123 ± 1%         5.119 ± 1%       ~ (p=0.249 n=7)
Create/2-workers/sqlite-4                   5.114 ± 2%         5.143 ± 1%       ~ (p=0.318 n=7)
Create/4-workers/sqlite-4                   5.103 ± 1%         5.142 ± 1%  +0.76% (p=0.038 n=7)
Create/8-workers/sqlite-4                   5.103 ± 0%         5.092 ± 1%       ~ (p=0.301 n=7)
Create/16-workers/sqlite-4                  5.050 ± 1%         5.082 ± 1%       ~ (p=0.174 n=7)
Create/1-workers/dqlite-4                   4.181 ± 1%         4.180 ± 2%       ~ (p=0.734 n=7)
Create/2-workers/dqlite-4                   4.247 ± 1%         4.259 ± 2%       ~ (p=1.000 n=7)
Create/4-workers/dqlite-4                   4.301 ± 1%         4.284 ± 1%       ~ (p=0.710 n=7)
Create/8-workers/dqlite-4                   4.246 ± 2%         4.290 ± 1%  +1.04% (p=0.002 n=7)
Create/16-workers/dqlite-4                  4.251 ± 2%         4.299 ± 2%  +1.13% (p=0.026 n=7)
Delete/1-workers/sqlite-4                   5.335 ± 1%         5.323 ± 1%       ~ (p=0.877 n=7)
Delete/2-workers/sqlite-4                   5.308 ± 1%         5.308 ± 1%       ~ (p=0.831 n=7)
Delete/4-workers/sqlite-4                   5.302 ± 1%         5.285 ± 1%       ~ (p=0.318 n=7)
Delete/8-workers/sqlite-4                   5.271 ± 2%         5.284 ± 2%       ~ (p=1.000 n=7)
Delete/16-workers/sqlite-4                  5.342 ± 1%         5.262 ± 2%       ~ (p=0.053 n=7)
Delete/1-workers/dqlite-4                   4.396 ± 1%         4.402 ± 1%       ~ (p=0.383 n=7)
Delete/2-workers/dqlite-4                   4.422 ± 1%         4.375 ± 2%       ~ (p=0.383 n=7)
Delete/4-workers/dqlite-4                   4.422 ± 1%         4.406 ± 1%       ~ (p=0.691 n=7)
Delete/8-workers/dqlite-4                   4.392 ± 1%         4.403 ± 0%       ~ (p=0.513 n=7)
Delete/16-workers/dqlite-4                  4.411 ± 1%         4.412 ± 1%       ~ (p=1.000 n=7)
Get/sqlite-4                                0.000 ± 0%         0.000 ± 0%       ~ (p=1.000 n=7) ¹
Get/dqlite-4                                0.000 ± 0%         0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/sqlite-tiny/all-4                      0.000 ± 0%         0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/sqlite-tiny/pagination-4               0.000 ± 0%         0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/sqlite-fits-in-page/all-4              0.000 ± 0%         0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/sqlite-fits-in-page/pagination-4       0.000 ± 0%         0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/sqlite-overflows-page/all-4            0.000 ± 0%         0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/sqlite-overflows-page/pagination-4     0.000 ± 0%         0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/dqlite-tiny/all-4                      0.000 ± 0%         0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/dqlite-tiny/pagination-4               0.000 ± 0%         0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/dqlite-fits-in-page/all-4              0.000 ± 0%         0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/dqlite-fits-in-page/pagination-4       0.000 ± 0%         0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/dqlite-overflows-page/all-4            0.000 ± 0%         0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/dqlite-overflows-page/pagination-4     0.000 ± 0%         0.000 ± 0%       ~ (p=1.000 n=7) ¹
Update/1-workers/sqlite-4                   5.179 ± 0%         5.180 ± 1%       ~ (p=0.902 n=7)
Update/2-workers/sqlite-4                   5.206 ± 1%         5.198 ± 1%       ~ (p=0.805 n=7)
Update/4-workers/sqlite-4                   5.247 ± 1%         5.190 ± 2%       ~ (p=0.097 n=7)
Update/8-workers/sqlite-4                   5.250 ± 1%         5.215 ± 2%       ~ (p=0.383 n=7)
Update/16-workers/sqlite-4                  5.241 ± 3%         5.160 ± 2%       ~ (p=0.259 n=7)
Update/1-workers/dqlite-4                   4.218 ± 0%         4.196 ± 0%  -0.52% (p=0.011 n=7)
Update/2-workers/dqlite-4                   4.255 ± 0%         4.247 ± 0%       ~ (p=0.068 n=7)
Update/4-workers/dqlite-4                   4.214 ± 0%         4.205 ± 1%       ~ (p=0.152 n=7)
Update/8-workers/dqlite-4                   4.235 ± 1%         4.216 ± 1%       ~ (p=0.209 n=7)
Update/16-workers/dqlite-4                  4.219 ± 0%         4.228 ± 2%  +0.21% (p=0.028 n=7)
geomean                                                ²                   -0.07%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

                                        │     Before     │                 After                  │
                                        │ sec-reading/op │ sec-reading/op   vs base               │
Compaction/sqlite-4                        115.9µ ±  11%    111.8µ ±   16%        ~ (p=1.000 n=7)
Compaction/dqlite-4                        24.90µ ±  58%    21.60µ ±   40%        ~ (p=0.176 n=7)
Create/1-workers/sqlite-4                  43.70µ ±  61%    39.50µ ±  297%        ~ (p=0.902 n=7)
Create/2-workers/sqlite-4                  71.50µ ± 856%    62.40µ ±  313%        ~ (p=0.902 n=7)
Create/4-workers/sqlite-4                  76.00µ ± 179%    39.50µ ±  580%        ~ (p=0.383 n=7)
Create/8-workers/sqlite-4                  55.00µ ± 998%    47.10µ ±  577%        ~ (p=1.000 n=7)
Create/16-workers/sqlite-4                 80.50µ ± 327%    33.80µ ±  498%        ~ (p=1.000 n=7)
Create/1-workers/dqlite-4                 10.300µ ±  43%    9.900µ ±   68%        ~ (p=0.876 n=7)
Create/2-workers/dqlite-4                  10.00µ ±  91%    10.90µ ±   27%        ~ (p=0.805 n=7)
Create/4-workers/dqlite-4                  11.50µ ±  64%    12.40µ ±   40%        ~ (p=0.710 n=7)
Create/8-workers/dqlite-4                  9.400µ ± 109%   11.000µ ±   45%        ~ (p=0.874 n=7)
Create/16-workers/dqlite-4                 10.60µ ±  49%    12.50µ ±   33%        ~ (p=0.244 n=7)
Delete/1-workers/sqlite-4                  155.4µ ± 106%    158.3µ ±   54%        ~ (p=0.902 n=7)
Delete/2-workers/sqlite-4                  721.6µ ±  70%    727.2µ ±   82%        ~ (p=0.710 n=7)
Delete/4-workers/sqlite-4                  1.643m ±  63%    1.928m ±  105%        ~ (p=0.805 n=7)
Delete/8-workers/sqlite-4                  3.414m ±  75%    3.628m ±   37%        ~ (p=0.805 n=7)
Delete/16-workers/sqlite-4                 9.797m ±  57%    6.987m ±   33%        ~ (p=0.165 n=7)
Delete/1-workers/dqlite-4                  57.10µ ±  24%    53.40µ ±   36%        ~ (p=0.456 n=7)
Delete/2-workers/dqlite-4                  54.90µ ±  18%    59.60µ ±   19%        ~ (p=0.090 n=7)
Delete/4-workers/dqlite-4                  57.80µ ±  14%    54.20µ ±   32%        ~ (p=1.000 n=7)
Delete/8-workers/dqlite-4                  57.00µ ±  38%    57.80µ ±   21%        ~ (p=0.383 n=7)
Delete/16-workers/dqlite-4                 62.10µ ±  15%    53.60µ ±   16%        ~ (p=0.058 n=7)
Get/sqlite-4                               84.80µ ±   5%    81.60µ ±    8%        ~ (p=0.120 n=7)
Get/dqlite-4                               34.50µ ±  10%    36.00µ ±   15%        ~ (p=0.620 n=7)
List/sqlite-tiny/all-4                     14.30µ ±   3%    14.10µ ±    1%        ~ (p=0.170 n=7)
List/sqlite-tiny/pagination-4              18.80µ ±   2%    19.20µ ±    3%   +2.13% (p=0.027 n=7)
List/sqlite-fits-in-page/all-4             17.00µ ± 169%    16.80µ ±   13%        ~ (p=0.881 n=7)
List/sqlite-fits-in-page/pagination-4      58.60µ ±   4%    59.10µ ±    3%        ~ (p=0.402 n=7)
List/sqlite-overflows-page/all-4           57.60µ ±  11%    56.00µ ±   12%        ~ (p=0.620 n=7)
List/sqlite-overflows-page/pagination-4    167.0µ ±   3%    165.8µ ±    3%        ~ (p=0.512 n=7)
List/dqlite-tiny/all-4                     4.100µ ±  27%    4.000µ ±   27%        ~ (p=0.064 n=7)
List/dqlite-tiny/pagination-4              9.500µ ±   5%    8.400µ ±   10%  -11.58% (p=0.001 n=7)
List/dqlite-fits-in-page/all-4             9.700µ ±  20%    9.600µ ±   15%        ~ (p=0.882 n=7)
List/dqlite-fits-in-page/pagination-4      25.60µ ±   9%    26.80µ ±   13%        ~ (p=0.217 n=7)
List/dqlite-overflows-page/all-4           30.60µ ±   3%    30.40µ ±    3%        ~ (p=0.969 n=7)
List/dqlite-overflows-page/pagination-4    63.30µ ±  14%    60.30µ ±   22%        ~ (p=0.209 n=7)
Update/1-workers/sqlite-4                  30.90µ ±  63%    51.80µ ±  367%        ~ (p=0.209 n=7)
Update/2-workers/sqlite-4                  43.70µ ±  39%    34.80µ ±  501%        ~ (p=0.902 n=7)
Update/4-workers/sqlite-4                  41.50µ ± 105%    59.00µ ± 4069%        ~ (p=0.383 n=7)
Update/8-workers/sqlite-4                  40.60µ ± 327%    76.10µ ± 1727%        ~ (p=0.620 n=7)
Update/16-workers/sqlite-4                 70.00µ ± 273%    57.00µ ±  226%        ~ (p=0.710 n=7)
Update/1-workers/dqlite-4                  9.700µ ±  40%   10.600µ ±   46%        ~ (p=0.434 n=7)
Update/2-workers/dqlite-4                  11.40µ ±  44%    10.80µ ±   32%        ~ (p=0.477 n=7)
Update/4-workers/dqlite-4                 15.700µ ±  18%    8.400µ ±   52%  -46.50% (p=0.001 n=7)
Update/8-workers/dqlite-4                  12.10µ ±  65%    13.10µ ±   26%        ~ (p=0.902 n=7)
Update/16-workers/dqlite-4                 11.00µ ±  38%    14.20µ ±   51%        ~ (p=0.154 n=7)
geomean                                    44.59µ           43.34µ           -2.81%

                                        │     Before     │                  After                  │
                                        │ sec-writing/op │ sec-writing/op  vs base                 │
Compaction/sqlite-4                       9.900µ ± 17%       9.300µ ± 13%   -6.06% (p=0.005 n=7)
Compaction/dqlite-4                       7.300µ ±  8%       6.900µ ±  9%        ~ (p=0.210 n=7)
Create/1-workers/sqlite-4                 969.1µ ±  5%      1019.0µ ±  4%   +5.15% (p=0.001 n=7)
Create/2-workers/sqlite-4                 2.109m ± 15%       1.702m ± 25%  -19.30% (p=0.007 n=7)
Create/4-workers/sqlite-4                 3.690m ±  7%       3.606m ± 46%        ~ (p=0.383 n=7)
Create/8-workers/sqlite-4                 6.698m ± 43%       6.979m ± 39%        ~ (p=0.620 n=7)
Create/16-workers/sqlite-4                14.52m ± 24%       14.36m ± 15%        ~ (p=0.973 n=7)
Create/1-workers/dqlite-4                 32.80µ ± 65%       30.10µ ± 30%        ~ (p=0.318 n=7)
Create/2-workers/dqlite-4                 38.20µ ± 26%       40.10µ ± 25%        ~ (p=0.535 n=7)
Create/4-workers/dqlite-4                 43.30µ ± 34%       37.80µ ± 28%        ~ (p=1.000 n=7)
Create/8-workers/dqlite-4                 34.10µ ± 29%       38.70µ ± 18%        ~ (p=0.053 n=7)
Create/16-workers/dqlite-4                38.80µ ± 33%       37.00µ ± 24%        ~ (p=1.000 n=7)
Delete/1-workers/sqlite-4                 1.081m ±  8%       1.097m ± 19%        ~ (p=0.902 n=7)
Delete/2-workers/sqlite-4                 1.970m ± 17%       1.669m ± 27%        ~ (p=0.097 n=7)
Delete/4-workers/sqlite-4                 3.637m ± 33%       3.578m ± 31%        ~ (p=0.535 n=7)
Delete/8-workers/sqlite-4                 6.820m ± 66%       6.541m ± 67%        ~ (p=0.710 n=7)
Delete/16-workers/sqlite-4                14.34m ± 43%       15.25m ± 34%        ~ (p=0.685 n=7)
Delete/1-workers/dqlite-4                 20.60µ ± 32%       15.10µ ± 52%  -26.70% (p=0.049 n=7)
Delete/2-workers/dqlite-4                 33.80µ ± 47%       32.90µ ± 30%        ~ (p=0.902 n=7)
Delete/4-workers/dqlite-4                 25.20µ ± 39%       31.10µ ± 22%        ~ (p=0.274 n=7)
Delete/8-workers/dqlite-4                 28.90µ ± 20%       28.50µ ± 20%        ~ (p=0.619 n=7)
Delete/16-workers/dqlite-4                28.60µ ± 21%       30.30µ ± 36%        ~ (p=0.874 n=7)
Get/sqlite-4                               0.000 ±  0%        0.000 ±  0%        ~ (p=1.000 n=7) ¹
Get/dqlite-4                               0.000 ±  0%        0.000 ±  0%        ~ (p=1.000 n=7) ¹
List/sqlite-tiny/all-4                     0.000 ±  0%        0.000 ±  0%        ~ (p=1.000 n=7) ¹
List/sqlite-tiny/pagination-4              0.000 ±  0%        0.000 ±  0%        ~ (p=1.000 n=7) ¹
List/sqlite-fits-in-page/all-4             0.000 ±  0%        0.000 ±  0%        ~ (p=1.000 n=7) ¹
List/sqlite-fits-in-page/pagination-4      0.000 ±  0%        0.000 ±  0%        ~ (p=1.000 n=7) ¹
List/sqlite-overflows-page/all-4           0.000 ±  0%        0.000 ±  0%        ~ (p=1.000 n=7) ¹
List/sqlite-overflows-page/pagination-4    0.000 ±  0%        0.000 ±  0%        ~ (p=1.000 n=7) ¹
List/dqlite-tiny/all-4                     0.000 ±  0%        0.000 ±  0%        ~ (p=1.000 n=7) ¹
List/dqlite-tiny/pagination-4              0.000 ±  0%        0.000 ±  0%        ~ (p=1.000 n=7) ¹
List/dqlite-fits-in-page/all-4             0.000 ±  0%        0.000 ±  0%        ~ (p=1.000 n=7) ¹
List/dqlite-fits-in-page/pagination-4      0.000 ±  0%        0.000 ±  0%        ~ (p=1.000 n=7) ¹
List/dqlite-overflows-page/all-4           0.000 ±  0%        0.000 ±  0%        ~ (p=1.000 n=7) ¹
List/dqlite-overflows-page/pagination-4    0.000 ±  0%        0.000 ±  0%        ~ (p=1.000 n=7) ¹
Update/1-workers/sqlite-4                 883.5µ ±  8%      1038.0µ ±  3%  +17.49% (p=0.001 n=7)
Update/2-workers/sqlite-4                 1.695m ± 12%       1.759m ± 24%        ~ (p=0.383 n=7)
Update/4-workers/sqlite-4                 3.324m ± 13%       3.966m ± 21%  +19.31% (p=0.002 n=7)
Update/8-workers/sqlite-4                 6.223m ± 16%       7.460m ± 20%  +19.88% (p=0.006 n=7)
Update/16-workers/sqlite-4                14.25m ± 36%       13.77m ± 25%        ~ (p=0.646 n=7)
Update/1-workers/dqlite-4                 39.20µ ± 18%       37.20µ ± 25%        ~ (p=0.902 n=7)
Update/2-workers/dqlite-4                 39.90µ ± 12%       35.80µ ± 23%        ~ (p=0.209 n=7)
Update/4-workers/dqlite-4                 36.20µ ± 20%       41.50µ ± 22%        ~ (p=0.456 n=7)
Update/8-workers/dqlite-4                 40.60µ ± 23%       35.70µ ± 29%  -12.07% (p=0.001 n=7)
Update/16-workers/dqlite-4                39.20µ ± 31%       40.60µ ± 33%        ~ (p=0.805 n=7)
geomean                                                ²                    -0.43%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

                                        │    Before     │                After                │
                                        │     B/op      │     B/op       vs base              │
Compaction/sqlite-4                         771.0 ± 77%     837.0 ± 79%       ~ (p=1.000 n=7)
Compaction/dqlite-4                       4.221Ki ± 82%   3.470Ki ± 61%       ~ (p=0.209 n=7)
Create/1-workers/sqlite-4                 21.35Ki ±  0%   21.34Ki ±  1%       ~ (p=0.247 n=7)
Create/2-workers/sqlite-4                 21.36Ki ±  8%   21.35Ki ±  1%       ~ (p=0.686 n=7)
Create/4-workers/sqlite-4                 21.39Ki ±  0%   21.33Ki ±  0%       ~ (p=0.053 n=7)
Create/8-workers/sqlite-4                 21.40Ki ±  8%   21.37Ki ±  5%       ~ (p=0.620 n=7)
Create/16-workers/sqlite-4                21.50Ki ±  3%   21.39Ki ±  2%       ~ (p=0.620 n=7)
Create/1-workers/dqlite-4                 20.09Ki ±  0%   20.05Ki ±  0%  -0.18% (p=0.001 n=7)
Create/2-workers/dqlite-4                 20.06Ki ±  1%   20.02Ki ±  0%  -0.18% (p=0.026 n=7)
Create/4-workers/dqlite-4                 20.06Ki ±  0%   20.01Ki ±  0%  -0.23% (p=0.011 n=7)
Create/8-workers/dqlite-4                 20.06Ki ±  0%   20.01Ki ±  0%  -0.26% (p=0.001 n=7)
Create/16-workers/dqlite-4                20.07Ki ±  0%   20.01Ki ±  0%  -0.30% (p=0.001 n=7)
Delete/1-workers/sqlite-4                 32.68Ki ±  1%   32.59Ki ±  1%       ~ (p=0.535 n=7)
Delete/2-workers/sqlite-4                 32.58Ki ±  1%   32.42Ki ±  8%       ~ (p=0.165 n=7)
Delete/4-workers/sqlite-4                 32.41Ki ±  1%   32.16Ki ± 11%       ~ (p=0.710 n=7)
Delete/8-workers/sqlite-4                 32.55Ki ±  3%   32.19Ki ±  3%       ~ (p=0.620 n=7)
Delete/16-workers/sqlite-4                31.69Ki ±  7%   31.93Ki ±  7%       ~ (p=0.620 n=7)
Delete/1-workers/dqlite-4                 29.48Ki ±  0%   29.44Ki ±  0%  -0.13% (p=0.001 n=7)
Delete/2-workers/dqlite-4                 64.14Ki ±  2%   65.37Ki ±  4%       ~ (p=0.259 n=7)
Delete/4-workers/dqlite-4                 86.37Ki ±  4%   82.76Ki ±  4%  -4.17% (p=0.017 n=7)
Delete/8-workers/dqlite-4                 80.27Ki ±  3%   80.04Ki ±  3%       ~ (p=0.805 n=7)
Delete/16-workers/dqlite-4                80.25Ki ±  3%   80.50Ki ±  2%       ~ (p=0.805 n=7)
Get/sqlite-4                              25.07Ki ±  0%   25.10Ki ±  0%  +0.12% (p=0.001 n=7)
Get/dqlite-4                              22.88Ki ±  0%   22.91Ki ±  0%  +0.14% (p=0.001 n=7)
List/sqlite-tiny/all-4                    1.265Ki ±  2%   1.251Ki ±  2%       ~ (p=0.272 n=7)
List/sqlite-tiny/pagination-4             1.780Ki ±  3%   1.817Ki ±  3%       ~ (p=0.073 n=7)
List/sqlite-fits-in-page/all-4            5.123Ki ±  3%   5.135Ki ±  2%       ~ (p=0.318 n=7)
List/sqlite-fits-in-page/pagination-4     10.22Ki ±  4%   10.27Ki ±  1%  +0.49% (p=0.005 n=7)
List/sqlite-overflows-page/all-4          26.20Ki ±  6%   25.59Ki ±  6%       ~ (p=0.831 n=7)
List/sqlite-overflows-page/pagination-4   46.12Ki ±  0%   46.14Ki ±  0%       ~ (p=0.209 n=7)
List/dqlite-tiny/all-4                      872.0 ± 11%     876.0 ± 14%       ~ (p=0.874 n=7)
List/dqlite-tiny/pagination-4               847.0 ±  3%     841.0 ±  2%       ~ (p=0.334 n=7)
List/dqlite-fits-in-page/all-4            4.276Ki ±  3%   4.304Ki ±  1%       ~ (p=0.104 n=7)
List/dqlite-fits-in-page/pagination-4     4.284Ki ±  6%   4.478Ki ±  4%       ~ (p=0.073 n=7)
List/dqlite-overflows-page/all-4          21.20Ki ±  1%   21.01Ki ±  1%       ~ (p=0.073 n=7)
List/dqlite-overflows-page/pagination-4   22.25Ki ±  8%   22.07Ki ±  8%       ~ (p=0.259 n=7)
Update/1-workers/sqlite-4                 22.56Ki ±  0%   22.60Ki ±  1%  +0.18% (p=0.026 n=7)
Update/2-workers/sqlite-4                 22.59Ki ±  0%   22.66Ki ±  0%  +0.29% (p=0.001 n=7)
Update/4-workers/sqlite-4                 22.62Ki ±  1%   22.65Ki ± 15%       ~ (p=0.805 n=7)
Update/8-workers/sqlite-4                 22.61Ki ±  1%   22.66Ki ±  5%       ~ (p=0.710 n=7)
Update/16-workers/sqlite-4                22.67Ki ±  3%   22.82Ki ±  2%       ~ (p=0.259 n=7)
Update/1-workers/dqlite-4                 21.19Ki ±  0%   21.25Ki ±  0%  +0.29% (p=0.001 n=7)
Update/2-workers/dqlite-4                 21.18Ki ±  0%   21.21Ki ±  0%  +0.16% (p=0.001 n=7)
Update/4-workers/dqlite-4                 21.19Ki ±  0%   21.23Ki ±  0%  +0.21% (p=0.001 n=7)
Update/8-workers/dqlite-4                 21.24Ki ±  0%   21.28Ki ±  0%       ~ (p=0.097 n=7)
Update/16-workers/dqlite-4                21.28Ki ±  1%   21.29Ki ±  1%       ~ (p=0.165 n=7)
geomean                                   15.96Ki         15.92Ki        -0.28%

                                        │    Before    │               After                │
                                        │  allocs/op   │  allocs/op   vs base               │
Compaction/sqlite-4                        29.00 ± 86%   30.00 ± 87%        ~ (p=0.741 n=7)
Compaction/dqlite-4                       102.00 ± 82%   71.00 ± 63%        ~ (p=0.053 n=7)
Create/1-workers/sqlite-4                  455.0 ±  0%   453.0 ±  1%   -0.44% (p=0.003 n=7)
Create/2-workers/sqlite-4                  455.0 ± 12%   453.0 ±  2%        ~ (p=0.186 n=7)
Create/4-workers/sqlite-4                  455.0 ±  1%   453.0 ±  1%   -0.44% (p=0.007 n=7)
Create/8-workers/sqlite-4                  454.0 ± 11%   453.0 ±  8%        ~ (p=0.349 n=7)
Create/16-workers/sqlite-4                 454.0 ±  4%   454.0 ±  2%        ~ (p=0.596 n=7)
Create/1-workers/dqlite-4                  372.0 ±  0%   370.0 ±  0%   -0.54% (p=0.001 n=7)
Create/2-workers/dqlite-4                  372.0 ±  0%   370.0 ±  0%   -0.54% (p=0.001 n=7)
Create/4-workers/dqlite-4                  372.0 ±  0%   370.0 ±  0%   -0.54% (p=0.001 n=7)
Create/8-workers/dqlite-4                  372.0 ±  0%   370.0 ±  0%   -0.54% (p=0.001 n=7)
Create/16-workers/dqlite-4                 372.0 ±  0%   370.0 ±  0%   -0.54% (p=0.001 n=7)
Delete/1-workers/sqlite-4                  727.0 ±  2%   720.0 ±  1%        ~ (p=0.171 n=7)
Delete/2-workers/sqlite-4                  725.0 ±  1%   715.0 ± 11%   -1.38% (p=0.013 n=7)
Delete/4-workers/sqlite-4                  718.0 ±  1%   707.0 ± 16%        ~ (p=0.135 n=7)
Delete/8-workers/sqlite-4                  722.0 ±  3%   705.0 ±  4%        ~ (p=0.101 n=7)
Delete/16-workers/sqlite-4                 695.0 ±  9%   698.0 ±  9%        ~ (p=0.535 n=7)
Delete/1-workers/dqlite-4                  510.0 ±  0%   503.0 ±  0%   -1.37% (p=0.001 n=7)
Delete/2-workers/dqlite-4                  554.0 ±  0%   549.0 ±  1%   -0.90% (p=0.001 n=7)
Delete/4-workers/dqlite-4                  578.0 ±  1%   568.0 ±  0%   -1.73% (p=0.001 n=7)
Delete/8-workers/dqlite-4                  560.0 ±  1%   554.0 ±  0%   -1.07% (p=0.001 n=7)
Delete/16-workers/dqlite-4                 560.0 ±  1%   553.0 ±  1%   -1.25% (p=0.001 n=7)
Get/sqlite-4                               563.0 ±  0%   557.0 ±  0%   -1.07% (p=0.001 n=7)
Get/dqlite-4                               407.0 ±  0%   401.0 ±  0%   -1.47% (p=0.001 n=7)
List/sqlite-tiny/all-4                     41.00 ±  2%   38.00 ±  3%   -7.32% (p=0.001 n=7)
List/sqlite-tiny/pagination-4              62.00 ±  3%   60.00 ±  3%   -3.23% (p=0.033 n=7)
List/sqlite-fits-in-page/all-4             47.00 ±  4%   44.00 ±  2%   -6.38% (p=0.006 n=7)
List/sqlite-fits-in-page/pagination-4      93.00 ±  4%   89.00 ±  0%   -4.30% (p=0.005 n=7)
List/sqlite-overflows-page/all-4           56.00 ±  5%   52.00 ±  4%   -7.14% (p=0.002 n=7)
List/sqlite-overflows-page/pagination-4    93.00 ±  0%   89.00 ±  0%   -4.30% (p=0.001 n=7)
List/dqlite-tiny/all-4                     14.00 ± 14%   12.00 ± 17%  -14.29% (p=0.003 n=7)
List/dqlite-tiny/pagination-4              13.00 ±  0%   11.00 ±  0%  -15.38% (p=0.001 n=7)
List/dqlite-fits-in-page/all-4             18.00 ±  6%   16.00 ±  6%  -11.11% (p=0.001 n=7)
List/dqlite-fits-in-page/pagination-4      17.00 ± 12%   16.00 ±  6%   -5.88% (p=0.003 n=7)
List/dqlite-overflows-page/all-4           29.00 ±  3%   27.00 ±  4%   -6.90% (p=0.001 n=7)
List/dqlite-overflows-page/pagination-4    31.00 ± 13%   28.00 ± 14%   -9.68% (p=0.005 n=7)
Update/1-workers/sqlite-4                  462.0 ±  0%   460.0 ±  1%   -0.43% (p=0.003 n=7)
Update/2-workers/sqlite-4                  462.0 ±  0%   461.0 ±  0%   -0.22% (p=0.019 n=7)
Update/4-workers/sqlite-4                  462.0 ±  1%   461.0 ± 24%        ~ (p=0.065 n=7)
Update/8-workers/sqlite-4                  462.0 ±  1%   460.0 ±  7%        ~ (p=0.073 n=7)
Update/16-workers/sqlite-4                 460.0 ±  3%   462.0 ±  3%        ~ (p=0.400 n=7)
Update/1-workers/dqlite-4                  375.0 ±  0%   374.0 ±  0%   -0.27% (p=0.001 n=7)
Update/2-workers/dqlite-4                  375.0 ±  0%   374.0 ±  0%   -0.27% (p=0.001 n=7)
Update/4-workers/dqlite-4                  375.0 ±  0%   374.0 ±  0%   -0.27% (p=0.020 n=7)
Update/8-workers/dqlite-4                  376.0 ±  0%   375.0 ±  0%        ~ (p=0.209 n=7)
Update/16-workers/dqlite-4                 376.0 ±  1%   376.0 ±  1%        ~ (p=0.881 n=7)
geomean                                    218.5         211.3         -3.31%

                                        │        Before         │                    After                    │
                                        │ network-bytes-read/op │ network-bytes-read/op  vs base              │
Compaction/dqlite-4                               1.528Ki ± 84%           1.264Ki ± 64%       ~ (p=0.209 n=7)
Create/1-workers/dqlite-4                           240.1 ±  0%             240.1 ±  0%       ~ (p=0.830 n=7)
Create/2-workers/dqlite-4                           241.2 ±  0%             241.4 ±  0%       ~ (p=0.477 n=7)
Create/4-workers/dqlite-4                           242.0 ±  0%             241.5 ±  0%       ~ (p=0.595 n=7)
Create/8-workers/dqlite-4                           241.1 ±  0%             241.8 ±  0%  +0.29% (p=0.003 n=7)
Create/16-workers/dqlite-4                          241.1 ±  1%             242.2 ±  1%       ~ (p=0.104 n=7)
Delete/1-workers/dqlite-4                         1.157Ki ±  0%           1.157Ki ±  0%       ~ (p=0.449 n=7)
Delete/2-workers/dqlite-4                         1.261Ki ±  0%           1.262Ki ±  1%       ~ (p=0.876 n=7)
Delete/4-workers/dqlite-4                         1.311Ki ±  1%           1.305Ki ±  1%       ~ (p=0.134 n=7)
Delete/8-workers/dqlite-4                         1.295Ki ±  0%           1.297Ki ±  0%       ~ (p=0.213 n=7)
Delete/16-workers/dqlite-4                        1.292Ki ±  1%           1.295Ki ±  0%       ~ (p=0.326 n=7)
Get/dqlite-4                                      1.133Ki ±  0%           1.134Ki ±  0%  +0.09% (p=0.020 n=7)
List/dqlite-tiny/all-4                              203.7 ± 19%             204.7 ± 22%       ~ (p=0.971 n=7)
List/dqlite-tiny/pagination-4                       193.2 ±  2%             192.5 ±  3%       ~ (p=0.335 n=7)
List/dqlite-fits-in-page/all-4                    1.222Ki ±  5%           1.236Ki ±  2%       ~ (p=0.081 n=7)
List/dqlite-fits-in-page/pagination-4             1.207Ki ±  8%           1.290Ki ±  6%  +6.88% (p=0.038 n=7)
List/dqlite-overflows-page/all-4                  6.214Ki ±  2%           6.140Ki ±  1%       ~ (p=0.097 n=7)
List/dqlite-overflows-page/pagination-4           6.626Ki ± 12%           6.528Ki ± 13%       ~ (p=0.259 n=7)
Update/1-workers/dqlite-4                           262.8 ±  0%             262.7 ±  0%  -0.04% (p=0.001 n=7)
Update/2-workers/dqlite-4                           263.0 ±  0%             262.8 ±  0%       ~ (p=0.085 n=7)
Update/4-workers/dqlite-4                           263.2 ±  0%             263.1 ±  0%       ~ (p=1.000 n=7)
Update/8-workers/dqlite-4                           263.6 ±  0%             263.5 ±  0%       ~ (p=0.878 n=7)
Update/16-workers/dqlite-4                          263.3 ±  1%             263.8 ±  1%       ~ (p=0.364 n=7)
geomean                                             621.4                   617.9        -0.56%

                                        │          Before          │                     After                      │
                                        │ network-bytes-written/op │ network-bytes-written/op  vs base              │
Compaction/dqlite-4                                    4.382 ± 13%                4.383 ± 14%       ~ (p=0.805 n=7)
Create/1-workers/dqlite-4                              113.3 ±  1%                113.6 ±  1%       ~ (p=0.640 n=7)
Create/2-workers/dqlite-4                              115.5 ±  1%                115.7 ±  1%       ~ (p=0.777 n=7)
Create/4-workers/dqlite-4                              117.1 ±  2%                115.9 ±  2%       ~ (p=0.734 n=7)
Create/8-workers/dqlite-4                              115.3 ±  1%                116.8 ±  1%  +1.30% (p=0.001 n=7)
Create/16-workers/dqlite-4                             115.1 ±  2%                117.6 ±  3%       ~ (p=0.058 n=7)
Delete/1-workers/dqlite-4                              423.5 ±  0%                423.5 ±  0%       ~ (p=1.000 n=7)
Delete/2-workers/dqlite-4                              811.5 ±  2%                814.2 ±  3%       ~ (p=0.620 n=7)
Delete/4-workers/dqlite-4                              998.4 ±  3%                974.6 ±  4%       ~ (p=0.128 n=7)
Delete/8-workers/dqlite-4                              990.6 ±  2%                997.9 ±  2%       ~ (p=0.259 n=7)
Delete/16-workers/dqlite-4                             991.8 ±  1%                997.9 ±  2%       ~ (p=0.097 n=7)
Get/dqlite-4                                           80.56 ±  0%                80.50 ±  0%       ~ (p=0.190 n=7)
List/dqlite-tiny/all-4                               0.04318 ± 35%              0.04357 ± 41%       ~ (p=1.000 n=7)
List/dqlite-tiny/pagination-4                        0.04633 ±  5%              0.04503 ±  8%       ~ (p=0.383 n=7)
List/dqlite-fits-in-page/all-4                       0.05208 ±  9%              0.05266 ±  3%       ~ (p=0.073 n=7)
List/dqlite-fits-in-page/pagination-4                0.06662 ± 24%              0.07270 ± 13%       ~ (p=0.165 n=7)
List/dqlite-overflows-page/all-4                     0.06337 ±  3%              0.06283 ±  1%       ~ (p=0.456 n=7)
List/dqlite-overflows-page/pagination-4               0.1067 ± 28%               0.1125 ±  2%       ~ (p=0.710 n=7)
Update/1-workers/dqlite-4                              136.4 ±  0%                136.5 ±  0%       ~ (p=0.746 n=7)
Update/2-workers/dqlite-4                              136.5 ±  0%                136.3 ±  0%       ~ (p=0.101 n=7)
Update/4-workers/dqlite-4                              136.4 ±  0%                136.5 ±  0%       ~ (p=0.778 n=7)
Update/8-workers/dqlite-4                              136.7 ±  0%                136.8 ±  0%       ~ (p=0.689 n=7)
Update/16-workers/dqlite-4                             136.7 ±  1%                137.1 ±  1%       ~ (p=0.332 n=7)
geomean                                                21.68                      21.82        +0.64%
Current status
goos: linux
goarch: amd64
pkg: github.com/canonical/k8s-dqlite/test
cpu: AMD EPYC 7763 64-Core Processor                
                                        │    After     │
                                        │    sec/op    │
Compaction/sqlite-4                       36.45µ ± 15%
Compaction/dqlite-4                       42.74µ ±  8%
Create/1-workers/sqlite-4                 1.283m ±  3%
Create/2-workers/sqlite-4                 1.263m ±  6%
Create/4-workers/sqlite-4                 1.247m ± 28%
Create/8-workers/sqlite-4                 1.453m ± 30%
Create/16-workers/sqlite-4                1.619m ± 35%
Create/1-workers/dqlite-4                 1.125m ±  6%
Create/2-workers/dqlite-4                 977.2µ ±  4%
Create/4-workers/dqlite-4                 913.1µ ±  9%
Create/8-workers/dqlite-4                 896.1µ ±  6%
Create/16-workers/dqlite-4                913.4µ ±  8%
Delete/1-workers/sqlite-4                 1.466m ± 14%
Delete/2-workers/sqlite-4                 1.519m ± 10%
Delete/4-workers/sqlite-4                 1.661m ±  6%
Delete/8-workers/sqlite-4                 1.775m ± 23%
Delete/16-workers/sqlite-4                2.137m ± 17%
Delete/1-workers/dqlite-4                 1.390m ±  9%
Delete/2-workers/dqlite-4                 1.226m ±  6%
Delete/4-workers/dqlite-4                 1.126m ±  6%
Delete/8-workers/dqlite-4                 1.107m ±  4%
Delete/16-workers/dqlite-4                1.123m ±  2%
Get/sqlite-4                              259.5µ ±  2%
Get/dqlite-4                              349.1µ ±  2%
List/sqlite-tiny/all-4                    4.369µ ±  3%
List/sqlite-tiny/pagination-4             8.843µ ±  2%
List/sqlite-fits-in-page/all-4            7.148µ ±  3%
List/sqlite-fits-in-page/pagination-4     21.51µ ±  2%
List/sqlite-overflows-page/all-4          16.43µ ±  3%
List/sqlite-overflows-page/pagination-4   45.37µ ±  4%
List/dqlite-tiny/all-4                    2.757µ ± 14%
List/dqlite-tiny/pagination-4             5.815µ ±  2%
List/dqlite-fits-in-page/all-4            5.845µ ±  9%
List/dqlite-fits-in-page/pagination-4     15.98µ ±  3%
List/dqlite-overflows-page/all-4          17.43µ ±  2%
List/dqlite-overflows-page/pagination-4   38.81µ ±  6%
Update/1-workers/sqlite-4                 1.297m ±  4%
Update/2-workers/sqlite-4                 1.345m ±  7%
Update/4-workers/sqlite-4                 1.458m ± 12%
Update/8-workers/sqlite-4                 1.536m ± 12%
Update/16-workers/sqlite-4                1.676m ± 20%
Update/1-workers/dqlite-4                 1.116m ±  3%
Update/2-workers/dqlite-4                 941.0µ ±  3%
Update/4-workers/dqlite-4                 963.1µ ±  8%
Update/8-workers/dqlite-4                 941.7µ ±  4%
Update/16-workers/dqlite-4                941.6µ ± 10%
geomean                                   296.1µ

                                        │        After         │
                                        │ page-cache-misses/op │
Compaction/sqlite-4                               0.000 ± 0%
Compaction/dqlite-4                               0.000 ± 0%
Create/1-workers/sqlite-4                         0.000 ± 0%
Create/2-workers/sqlite-4                         0.000 ± 0%
Create/4-workers/sqlite-4                         0.000 ± 0%
Create/8-workers/sqlite-4                         0.000 ± 0%
Create/16-workers/sqlite-4                        0.000 ± 0%
Create/1-workers/dqlite-4                         0.000 ± 0%
Create/2-workers/dqlite-4                         0.000 ± 0%
Create/4-workers/dqlite-4                         0.000 ± 0%
Create/8-workers/dqlite-4                         0.000 ± 0%
Create/16-workers/dqlite-4                        0.000 ± 0%
Delete/1-workers/sqlite-4                         0.000 ± 0%
Delete/2-workers/sqlite-4                         0.000 ± 0%
Delete/4-workers/sqlite-4                         0.000 ± 0%
Delete/8-workers/sqlite-4                         0.000 ± 0%
Delete/16-workers/sqlite-4                        0.000 ± 0%
Delete/1-workers/dqlite-4                         0.000 ± 0%
Delete/2-workers/dqlite-4                         0.000 ± 0%
Delete/4-workers/dqlite-4                         0.000 ± 0%
Delete/8-workers/dqlite-4                         0.000 ± 0%
Delete/16-workers/dqlite-4                        0.000 ± 0%
Get/sqlite-4                                      0.000 ± 0%
Get/dqlite-4                                      0.000 ± 0%
List/sqlite-tiny/all-4                            0.000 ± 0%
List/sqlite-tiny/pagination-4                     0.000 ± 0%
List/sqlite-fits-in-page/all-4                    0.000 ± 0%
List/sqlite-fits-in-page/pagination-4             0.000 ± 0%
List/sqlite-overflows-page/all-4                  0.000 ± 0%
List/sqlite-overflows-page/pagination-4           0.000 ± 0%
List/dqlite-tiny/all-4                            0.000 ± 0%
List/dqlite-tiny/pagination-4                     0.000 ± 0%
List/dqlite-fits-in-page/all-4                    0.000 ± 0%
List/dqlite-fits-in-page/pagination-4             0.000 ± 0%
List/dqlite-overflows-page/all-4                  0.000 ± 0%
List/dqlite-overflows-page/pagination-4           0.000 ± 0%
Update/1-workers/sqlite-4                         0.000 ± 0%
Update/2-workers/sqlite-4                         0.000 ± 0%
Update/4-workers/sqlite-4                         0.000 ± 0%
Update/8-workers/sqlite-4                         0.000 ± 0%
Update/16-workers/sqlite-4                        0.000 ± 0%
Update/1-workers/dqlite-4                         0.000 ± 0%
Update/2-workers/dqlite-4                         0.000 ± 0%
Update/4-workers/dqlite-4                         0.000 ± 0%
Update/8-workers/dqlite-4                         0.000 ± 0%
Update/16-workers/dqlite-4                        0.000 ± 0%
geomean                                                      ¹
¹ summaries must be >0 to compute geomean

                                        │        After         │
                                        │ page-cache-spills/op │
Compaction/sqlite-4                               0.000 ± 0%
Compaction/dqlite-4                               0.000 ± 0%
Create/1-workers/sqlite-4                         0.000 ± 0%
Create/2-workers/sqlite-4                         0.000 ± 0%
Create/4-workers/sqlite-4                         0.000 ± 0%
Create/8-workers/sqlite-4                         0.000 ± 0%
Create/16-workers/sqlite-4                        0.000 ± 0%
Create/1-workers/dqlite-4                         0.000 ± 0%
Create/2-workers/dqlite-4                         0.000 ± 0%
Create/4-workers/dqlite-4                         0.000 ± 0%
Create/8-workers/dqlite-4                         0.000 ± 0%
Create/16-workers/dqlite-4                        0.000 ± 0%
Delete/1-workers/sqlite-4                         0.000 ± 0%
Delete/2-workers/sqlite-4                         0.000 ± 0%
Delete/4-workers/sqlite-4                         0.000 ± 0%
Delete/8-workers/sqlite-4                         0.000 ± 0%
Delete/16-workers/sqlite-4                        0.000 ± 0%
Delete/1-workers/dqlite-4                         0.000 ± 0%
Delete/2-workers/dqlite-4                         0.000 ± 0%
Delete/4-workers/dqlite-4                         0.000 ± 0%
Delete/8-workers/dqlite-4                         0.000 ± 0%
Delete/16-workers/dqlite-4                        0.000 ± 0%
Get/sqlite-4                                      0.000 ± 0%
Get/dqlite-4                                      0.000 ± 0%
List/sqlite-tiny/all-4                            0.000 ± 0%
List/sqlite-tiny/pagination-4                     0.000 ± 0%
List/sqlite-fits-in-page/all-4                    0.000 ± 0%
List/sqlite-fits-in-page/pagination-4             0.000 ± 0%
List/sqlite-overflows-page/all-4                  0.000 ± 0%
List/sqlite-overflows-page/pagination-4           0.000 ± 0%
List/dqlite-tiny/all-4                            0.000 ± 0%
List/dqlite-tiny/pagination-4                     0.000 ± 0%
List/dqlite-fits-in-page/all-4                    0.000 ± 0%
List/dqlite-fits-in-page/pagination-4             0.000 ± 0%
List/dqlite-overflows-page/all-4                  0.000 ± 0%
List/dqlite-overflows-page/pagination-4           0.000 ± 0%
Update/1-workers/sqlite-4                         0.000 ± 0%
Update/2-workers/sqlite-4                         0.000 ± 0%
Update/4-workers/sqlite-4                         0.000 ± 0%
Update/8-workers/sqlite-4                         0.000 ± 0%
Update/16-workers/sqlite-4                        0.000 ± 0%
Update/1-workers/dqlite-4                         0.000 ± 0%
Update/2-workers/dqlite-4                         0.000 ± 0%
Update/4-workers/dqlite-4                         0.000 ± 0%
Update/8-workers/dqlite-4                         0.000 ± 0%
Update/16-workers/dqlite-4                        0.000 ± 0%
geomean                                                      ¹
¹ summaries must be >0 to compute geomean

                                        │     After     │
                                        │ page-reads/op │
Compaction/sqlite-4                         12.17 ±  1%
Compaction/dqlite-4                         12.19 ±  1%
Create/1-workers/sqlite-4                   14.01 ±  1%
Create/2-workers/sqlite-4                   13.90 ±  1%
Create/4-workers/sqlite-4                   13.57 ±  2%
Create/8-workers/sqlite-4                   13.12 ±  4%
Create/16-workers/sqlite-4                  12.59 ±  2%
Create/1-workers/dqlite-4                   13.04 ±  1%
Create/2-workers/dqlite-4                   10.79 ±  2%
Create/4-workers/dqlite-4                   10.81 ±  1%
Create/8-workers/dqlite-4                   10.90 ±  1%
Create/16-workers/dqlite-4                  10.94 ±  2%
Delete/1-workers/sqlite-4                   25.12 ±  1%
Delete/2-workers/sqlite-4                   24.33 ±  9%
Delete/4-workers/sqlite-4                   23.71 ± 13%
Delete/8-workers/sqlite-4                   22.27 ±  5%
Delete/16-workers/sqlite-4                  20.84 ±  6%
Delete/1-workers/dqlite-4                   23.85 ±  1%
Delete/2-workers/dqlite-4                   12.70 ±  5%
Delete/4-workers/dqlite-4                   10.51 ±  2%
Delete/8-workers/dqlite-4                   10.96 ±  1%
Delete/16-workers/dqlite-4                  11.04 ±  3%
Get/sqlite-4                                14.95 ± 20%
Get/dqlite-4                                11.96 ±  0%
List/sqlite-tiny/all-4                     192.2m ±  0%
List/sqlite-tiny/pagination-4               1.132 ±  0%
List/sqlite-fits-in-page/all-4             164.9m ±  0%
List/sqlite-fits-in-page/pagination-4      965.5m ±  3%
List/sqlite-overflows-page/all-4           241.3m ± 29%
List/sqlite-overflows-page/pagination-4     2.080 ±  0%
List/dqlite-tiny/all-4                     191.2m ±  1%
List/dqlite-tiny/pagination-4               1.125 ±  3%
List/dqlite-fits-in-page/all-4             163.2m ±  0%
List/dqlite-fits-in-page/pagination-4      954.6m ±  3%
List/dqlite-overflows-page/all-4           182.7m ±  0%
List/dqlite-overflows-page/pagination-4     1.070 ±  0%
Update/1-workers/sqlite-4                   16.15 ±  1%
Update/2-workers/sqlite-4                   16.07 ±  2%
Update/4-workers/sqlite-4                   15.54 ± 18%
Update/8-workers/sqlite-4                   15.17 ±  4%
Update/16-workers/sqlite-4                  14.62 ±  3%
Update/1-workers/dqlite-4                   15.17 ±  1%
Update/2-workers/dqlite-4                   12.77 ±  1%
Update/4-workers/dqlite-4                   12.74 ±  1%
Update/8-workers/dqlite-4                   12.66 ±  0%
Update/16-workers/dqlite-4                  12.73 ±  1%
geomean                                     5.866

                                        │     After      │
                                        │ page-writes/op │
Compaction/sqlite-4                        207.6m ± 0%
Compaction/dqlite-4                        187.8m ± 1%
Create/1-workers/sqlite-4                   5.119 ± 1%
Create/2-workers/sqlite-4                   5.143 ± 1%
Create/4-workers/sqlite-4                   5.142 ± 1%
Create/8-workers/sqlite-4                   5.092 ± 1%
Create/16-workers/sqlite-4                  5.082 ± 1%
Create/1-workers/dqlite-4                   4.180 ± 2%
Create/2-workers/dqlite-4                   4.259 ± 2%
Create/4-workers/dqlite-4                   4.284 ± 1%
Create/8-workers/dqlite-4                   4.290 ± 1%
Create/16-workers/dqlite-4                  4.299 ± 2%
Delete/1-workers/sqlite-4                   5.323 ± 1%
Delete/2-workers/sqlite-4                   5.308 ± 1%
Delete/4-workers/sqlite-4                   5.285 ± 1%
Delete/8-workers/sqlite-4                   5.284 ± 2%
Delete/16-workers/sqlite-4                  5.262 ± 2%
Delete/1-workers/dqlite-4                   4.402 ± 1%
Delete/2-workers/dqlite-4                   4.375 ± 2%
Delete/4-workers/dqlite-4                   4.406 ± 1%
Delete/8-workers/dqlite-4                   4.403 ± 0%
Delete/16-workers/dqlite-4                  4.412 ± 1%
Get/sqlite-4                                0.000 ± 0%
Get/dqlite-4                                0.000 ± 0%
List/sqlite-tiny/all-4                      0.000 ± 0%
List/sqlite-tiny/pagination-4               0.000 ± 0%
List/sqlite-fits-in-page/all-4              0.000 ± 0%
List/sqlite-fits-in-page/pagination-4       0.000 ± 0%
List/sqlite-overflows-page/all-4            0.000 ± 0%
List/sqlite-overflows-page/pagination-4     0.000 ± 0%
List/dqlite-tiny/all-4                      0.000 ± 0%
List/dqlite-tiny/pagination-4               0.000 ± 0%
List/dqlite-fits-in-page/all-4              0.000 ± 0%
List/dqlite-fits-in-page/pagination-4       0.000 ± 0%
List/dqlite-overflows-page/all-4            0.000 ± 0%
List/dqlite-overflows-page/pagination-4     0.000 ± 0%
Update/1-workers/sqlite-4                   5.180 ± 1%
Update/2-workers/sqlite-4                   5.198 ± 1%
Update/4-workers/sqlite-4                   5.190 ± 2%
Update/8-workers/sqlite-4                   5.215 ± 2%
Update/16-workers/sqlite-4                  5.160 ± 2%
Update/1-workers/dqlite-4                   4.196 ± 0%
Update/2-workers/dqlite-4                   4.247 ± 0%
Update/4-workers/dqlite-4                   4.205 ± 1%
Update/8-workers/dqlite-4                   4.216 ± 1%
Update/16-workers/dqlite-4                  4.228 ± 2%
geomean                                                ¹
¹ summaries must be >0 to compute geomean

                                        │     After      │
                                        │ sec-reading/op │
Compaction/sqlite-4                       111.8µ ±   16%
Compaction/dqlite-4                       21.60µ ±   40%
Create/1-workers/sqlite-4                 39.50µ ±  297%
Create/2-workers/sqlite-4                 62.40µ ±  313%
Create/4-workers/sqlite-4                 39.50µ ±  580%
Create/8-workers/sqlite-4                 47.10µ ±  577%
Create/16-workers/sqlite-4                33.80µ ±  498%
Create/1-workers/dqlite-4                 9.900µ ±   68%
Create/2-workers/dqlite-4                 10.90µ ±   27%
Create/4-workers/dqlite-4                 12.40µ ±   40%
Create/8-workers/dqlite-4                 11.00µ ±   45%
Create/16-workers/dqlite-4                12.50µ ±   33%
Delete/1-workers/sqlite-4                 158.3µ ±   54%
Delete/2-workers/sqlite-4                 727.2µ ±   82%
Delete/4-workers/sqlite-4                 1.928m ±  105%
Delete/8-workers/sqlite-4                 3.628m ±   37%
Delete/16-workers/sqlite-4                6.987m ±   33%
Delete/1-workers/dqlite-4                 53.40µ ±   36%
Delete/2-workers/dqlite-4                 59.60µ ±   19%
Delete/4-workers/dqlite-4                 54.20µ ±   32%
Delete/8-workers/dqlite-4                 57.80µ ±   21%
Delete/16-workers/dqlite-4                53.60µ ±   16%
Get/sqlite-4                              81.60µ ±    8%
Get/dqlite-4                              36.00µ ±   15%
List/sqlite-tiny/all-4                    14.10µ ±    1%
List/sqlite-tiny/pagination-4             19.20µ ±    3%
List/sqlite-fits-in-page/all-4            16.80µ ±   13%
List/sqlite-fits-in-page/pagination-4     59.10µ ±    3%
List/sqlite-overflows-page/all-4          56.00µ ±   12%
List/sqlite-overflows-page/pagination-4   165.8µ ±    3%
List/dqlite-tiny/all-4                    4.000µ ±   27%
List/dqlite-tiny/pagination-4             8.400µ ±   10%
List/dqlite-fits-in-page/all-4            9.600µ ±   15%
List/dqlite-fits-in-page/pagination-4     26.80µ ±   13%
List/dqlite-overflows-page/all-4          30.40µ ±    3%
List/dqlite-overflows-page/pagination-4   60.30µ ±   22%
Update/1-workers/sqlite-4                 51.80µ ±  367%
Update/2-workers/sqlite-4                 34.80µ ±  501%
Update/4-workers/sqlite-4                 59.00µ ± 4069%
Update/8-workers/sqlite-4                 76.10µ ± 1727%
Update/16-workers/sqlite-4                57.00µ ±  226%
Update/1-workers/dqlite-4                 10.60µ ±   46%
Update/2-workers/dqlite-4                 10.80µ ±   32%
Update/4-workers/dqlite-4                 8.400µ ±   52%
Update/8-workers/dqlite-4                 13.10µ ±   26%
Update/16-workers/dqlite-4                14.20µ ±   51%
geomean                                   43.34µ

                                        │     After      │
                                        │ sec-writing/op │
Compaction/sqlite-4                       9.300µ ± 13%
Compaction/dqlite-4                       6.900µ ±  9%
Create/1-workers/sqlite-4                 1.019m ±  4%
Create/2-workers/sqlite-4                 1.702m ± 25%
Create/4-workers/sqlite-4                 3.606m ± 46%
Create/8-workers/sqlite-4                 6.979m ± 39%
Create/16-workers/sqlite-4                14.36m ± 15%
Create/1-workers/dqlite-4                 30.10µ ± 30%
Create/2-workers/dqlite-4                 40.10µ ± 25%
Create/4-workers/dqlite-4                 37.80µ ± 28%
Create/8-workers/dqlite-4                 38.70µ ± 18%
Create/16-workers/dqlite-4                37.00µ ± 24%
Delete/1-workers/sqlite-4                 1.097m ± 19%
Delete/2-workers/sqlite-4                 1.669m ± 27%
Delete/4-workers/sqlite-4                 3.578m ± 31%
Delete/8-workers/sqlite-4                 6.541m ± 67%
Delete/16-workers/sqlite-4                15.25m ± 34%
Delete/1-workers/dqlite-4                 15.10µ ± 52%
Delete/2-workers/dqlite-4                 32.90µ ± 30%
Delete/4-workers/dqlite-4                 31.10µ ± 22%
Delete/8-workers/dqlite-4                 28.50µ ± 20%
Delete/16-workers/dqlite-4                30.30µ ± 36%
Get/sqlite-4                               0.000 ±  0%
Get/dqlite-4                               0.000 ±  0%
List/sqlite-tiny/all-4                     0.000 ±  0%
List/sqlite-tiny/pagination-4              0.000 ±  0%
List/sqlite-fits-in-page/all-4             0.000 ±  0%
List/sqlite-fits-in-page/pagination-4      0.000 ±  0%
List/sqlite-overflows-page/all-4           0.000 ±  0%
List/sqlite-overflows-page/pagination-4    0.000 ±  0%
List/dqlite-tiny/all-4                     0.000 ±  0%
List/dqlite-tiny/pagination-4              0.000 ±  0%
List/dqlite-fits-in-page/all-4             0.000 ±  0%
List/dqlite-fits-in-page/pagination-4      0.000 ±  0%
List/dqlite-overflows-page/all-4           0.000 ±  0%
List/dqlite-overflows-page/pagination-4    0.000 ±  0%
Update/1-workers/sqlite-4                 1.038m ±  3%
Update/2-workers/sqlite-4                 1.759m ± 24%
Update/4-workers/sqlite-4                 3.966m ± 21%
Update/8-workers/sqlite-4                 7.460m ± 20%
Update/16-workers/sqlite-4                13.77m ± 25%
Update/1-workers/dqlite-4                 37.20µ ± 25%
Update/2-workers/dqlite-4                 35.80µ ± 23%
Update/4-workers/dqlite-4                 41.50µ ± 22%
Update/8-workers/dqlite-4                 35.70µ ± 29%
Update/16-workers/dqlite-4                40.60µ ± 33%
geomean                                                ¹
¹ summaries must be >0 to compute geomean

                                        │     After     │
                                        │     B/op      │
Compaction/sqlite-4                         837.0 ± 79%
Compaction/dqlite-4                       3.470Ki ± 61%
Create/1-workers/sqlite-4                 21.34Ki ±  1%
Create/2-workers/sqlite-4                 21.35Ki ±  1%
Create/4-workers/sqlite-4                 21.33Ki ±  0%
Create/8-workers/sqlite-4                 21.37Ki ±  5%
Create/16-workers/sqlite-4                21.39Ki ±  2%
Create/1-workers/dqlite-4                 20.05Ki ±  0%
Create/2-workers/dqlite-4                 20.02Ki ±  0%
Create/4-workers/dqlite-4                 20.01Ki ±  0%
Create/8-workers/dqlite-4                 20.01Ki ±  0%
Create/16-workers/dqlite-4                20.01Ki ±  0%
Delete/1-workers/sqlite-4                 32.59Ki ±  1%
Delete/2-workers/sqlite-4                 32.42Ki ±  8%
Delete/4-workers/sqlite-4                 32.16Ki ± 11%
Delete/8-workers/sqlite-4                 32.19Ki ±  3%
Delete/16-workers/sqlite-4                31.93Ki ±  7%
Delete/1-workers/dqlite-4                 29.44Ki ±  0%
Delete/2-workers/dqlite-4                 65.37Ki ±  4%
Delete/4-workers/dqlite-4                 82.76Ki ±  4%
Delete/8-workers/dqlite-4                 80.04Ki ±  3%
Delete/16-workers/dqlite-4                80.50Ki ±  2%
Get/sqlite-4                              25.10Ki ±  0%
Get/dqlite-4                              22.91Ki ±  0%
List/sqlite-tiny/all-4                    1.251Ki ±  2%
List/sqlite-tiny/pagination-4             1.817Ki ±  3%
List/sqlite-fits-in-page/all-4            5.135Ki ±  2%
List/sqlite-fits-in-page/pagination-4     10.27Ki ±  1%
List/sqlite-overflows-page/all-4          25.59Ki ±  6%
List/sqlite-overflows-page/pagination-4   46.14Ki ±  0%
List/dqlite-tiny/all-4                      876.0 ± 14%
List/dqlite-tiny/pagination-4               841.0 ±  2%
List/dqlite-fits-in-page/all-4            4.304Ki ±  1%
List/dqlite-fits-in-page/pagination-4     4.478Ki ±  4%
List/dqlite-overflows-page/all-4          21.01Ki ±  1%
List/dqlite-overflows-page/pagination-4   22.07Ki ±  8%
Update/1-workers/sqlite-4                 22.60Ki ±  1%
Update/2-workers/sqlite-4                 22.66Ki ±  0%
Update/4-workers/sqlite-4                 22.65Ki ± 15%
Update/8-workers/sqlite-4                 22.66Ki ±  5%
Update/16-workers/sqlite-4                22.82Ki ±  2%
Update/1-workers/dqlite-4                 21.25Ki ±  0%
Update/2-workers/dqlite-4                 21.21Ki ±  0%
Update/4-workers/dqlite-4                 21.23Ki ±  0%
Update/8-workers/dqlite-4                 21.28Ki ±  0%
Update/16-workers/dqlite-4                21.29Ki ±  1%
geomean                                   15.92Ki

                                        │    After    │
                                        │  allocs/op  │
Compaction/sqlite-4                       30.00 ± 87%
Compaction/dqlite-4                       71.00 ± 63%
Create/1-workers/sqlite-4                 453.0 ±  1%
Create/2-workers/sqlite-4                 453.0 ±  2%
Create/4-workers/sqlite-4                 453.0 ±  1%
Create/8-workers/sqlite-4                 453.0 ±  8%
Create/16-workers/sqlite-4                454.0 ±  2%
Create/1-workers/dqlite-4                 370.0 ±  0%
Create/2-workers/dqlite-4                 370.0 ±  0%
Create/4-workers/dqlite-4                 370.0 ±  0%
Create/8-workers/dqlite-4                 370.0 ±  0%
Create/16-workers/dqlite-4                370.0 ±  0%
Delete/1-workers/sqlite-4                 720.0 ±  1%
Delete/2-workers/sqlite-4                 715.0 ± 11%
Delete/4-workers/sqlite-4                 707.0 ± 16%
Delete/8-workers/sqlite-4                 705.0 ±  4%
Delete/16-workers/sqlite-4                698.0 ±  9%
Delete/1-workers/dqlite-4                 503.0 ±  0%
Delete/2-workers/dqlite-4                 549.0 ±  1%
Delete/4-workers/dqlite-4                 568.0 ±  0%
Delete/8-workers/dqlite-4                 554.0 ±  0%
Delete/16-workers/dqlite-4                553.0 ±  1%
Get/sqlite-4                              557.0 ±  0%
Get/dqlite-4                              401.0 ±  0%
List/sqlite-tiny/all-4                    38.00 ±  3%
List/sqlite-tiny/pagination-4             60.00 ±  3%
List/sqlite-fits-in-page/all-4            44.00 ±  2%
List/sqlite-fits-in-page/pagination-4     89.00 ±  0%
List/sqlite-overflows-page/all-4          52.00 ±  4%
List/sqlite-overflows-page/pagination-4   89.00 ±  0%
List/dqlite-tiny/all-4                    12.00 ± 17%
List/dqlite-tiny/pagination-4             11.00 ±  0%
List/dqlite-fits-in-page/all-4            16.00 ±  6%
List/dqlite-fits-in-page/pagination-4     16.00 ±  6%
List/dqlite-overflows-page/all-4          27.00 ±  4%
List/dqlite-overflows-page/pagination-4   28.00 ± 14%
Update/1-workers/sqlite-4                 460.0 ±  1%
Update/2-workers/sqlite-4                 461.0 ±  0%
Update/4-workers/sqlite-4                 461.0 ± 24%
Update/8-workers/sqlite-4                 460.0 ±  7%
Update/16-workers/sqlite-4                462.0 ±  3%
Update/1-workers/dqlite-4                 374.0 ±  0%
Update/2-workers/dqlite-4                 374.0 ±  0%
Update/4-workers/dqlite-4                 374.0 ±  0%
Update/8-workers/dqlite-4                 375.0 ±  0%
Update/16-workers/dqlite-4                376.0 ±  1%
geomean                                   211.3

                                        │         After         │
                                        │ network-bytes-read/op │
Compaction/dqlite-4                               1.264Ki ± 64%
Create/1-workers/dqlite-4                           240.1 ±  0%
Create/2-workers/dqlite-4                           241.4 ±  0%
Create/4-workers/dqlite-4                           241.5 ±  0%
Create/8-workers/dqlite-4                           241.8 ±  0%
Create/16-workers/dqlite-4                          242.2 ±  1%
Delete/1-workers/dqlite-4                         1.157Ki ±  0%
Delete/2-workers/dqlite-4                         1.262Ki ±  1%
Delete/4-workers/dqlite-4                         1.305Ki ±  1%
Delete/8-workers/dqlite-4                         1.297Ki ±  0%
Delete/16-workers/dqlite-4                        1.295Ki ±  0%
Get/dqlite-4                                      1.134Ki ±  0%
List/dqlite-tiny/all-4                              204.7 ± 22%
List/dqlite-tiny/pagination-4                       192.5 ±  3%
List/dqlite-fits-in-page/all-4                    1.236Ki ±  2%
List/dqlite-fits-in-page/pagination-4             1.290Ki ±  6%
List/dqlite-overflows-page/all-4                  6.140Ki ±  1%
List/dqlite-overflows-page/pagination-4           6.528Ki ± 13%
Update/1-workers/dqlite-4                           262.7 ±  0%
Update/2-workers/dqlite-4                           262.8 ±  0%
Update/4-workers/dqlite-4                           263.1 ±  0%
Update/8-workers/dqlite-4                           263.5 ±  0%
Update/16-workers/dqlite-4                          263.8 ±  1%
geomean                                             617.9

                                        │          After           │
                                        │ network-bytes-written/op │
Compaction/dqlite-4                                    4.383 ± 14%
Create/1-workers/dqlite-4                              113.6 ±  1%
Create/2-workers/dqlite-4                              115.7 ±  1%
Create/4-workers/dqlite-4                              115.9 ±  2%
Create/8-workers/dqlite-4                              116.8 ±  1%
Create/16-workers/dqlite-4                             117.6 ±  3%
Delete/1-workers/dqlite-4                              423.5 ±  0%
Delete/2-workers/dqlite-4                              814.2 ±  3%
Delete/4-workers/dqlite-4                              974.6 ±  4%
Delete/8-workers/dqlite-4                              997.9 ±  2%
Delete/16-workers/dqlite-4                             997.9 ±  2%
Get/dqlite-4                                           80.50 ±  0%
List/dqlite-tiny/all-4                               0.04357 ± 41%
List/dqlite-tiny/pagination-4                        0.04503 ±  8%
List/dqlite-fits-in-page/all-4                       0.05266 ±  3%
List/dqlite-fits-in-page/pagination-4                0.07270 ± 13%
List/dqlite-overflows-page/all-4                     0.06283 ±  1%
List/dqlite-overflows-page/pagination-4               0.1125 ±  2%
Update/1-workers/dqlite-4                              136.5 ±  0%
Update/2-workers/dqlite-4                              136.3 ±  0%
Update/4-workers/dqlite-4                              136.5 ±  0%
Update/8-workers/dqlite-4                              136.8 ±  0%
Update/16-workers/dqlite-4                             137.1 ±  1%
geomean                                                21.82

@marco6
Copy link
Collaborator Author

marco6 commented Oct 29, 2024

Superseded by #194

@marco6 marco6 closed this Oct 29, 2024
@marco6 marco6 deleted the marco6/improve-rows-parsing branch October 29, 2024 13:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant